Amazon EBS のデフォルト暗号化を AWS CLI で設定してみる
Amazon EC2 には EBS のデフォルト暗号化設定があります。アカウント作成時は下記画像のように無効状態のため、AWS CLI で全リージョンのデフォルト暗号化設定の有効化を試してみました。
試してみた
Amazon EBS のデフォルト暗号化を有効化する設定と、デフォルトの暗号化キーを変更する設定を試してみます。
EBS のデフォルト暗号化の有効化
EBS デフォルト暗号化を有効化するコマンドはenable-ebs-encryption-by-default
です。
EBS デフォルト暗号化はリージョン毎の設定のため、全リージョンで有効化するコマンド例は下記となります。
aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ | while read region; do echo "### Enable ebs encryption by default in ${region}" aws ec2 enable-ebs-encryption-by-default --region ${region} done
実行結果例です(折りたたんでいます)。
実行結果
$ aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ > | while read region; do > echo "### Enable ebs encryption by default in ${region}" > aws ec2 enable-ebs-encryption-by-default --region ${region} > done ### Enable ebs encryption by default in ap-south-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in eu-north-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in eu-west-3 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in eu-west-2 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in eu-west-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in ap-northeast-3 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in ap-northeast-2 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in ap-northeast-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in ca-central-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in sa-east-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in ap-southeast-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in ap-southeast-2 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in eu-central-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in us-east-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in us-east-2 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in us-west-1 { "EbsEncryptionByDefault": true } ### Enable ebs encryption by default in us-west-2 { "EbsEncryptionByDefault": true }
設定内容を確認してみます。
EBS デフォルト暗号化の設定状況はget-ebs-encryption-by-default
コマンドで確認できます。
全リージョンの設定状況を確認するコマンド例は下記となります。
aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ | while read region; do echo "### Get ebs encryption by default in ${region}" aws ec2 get-ebs-encryption-by-default --region ${region} done
実行結果例です(折りたたんでいます)。
実行結果
$ aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ > | while read region; do > echo "### Get ebs encryption by default in ${region}" > aws ec2 get-ebs-encryption-by-default --region ${region} > done ### Get ebs encryption by default in ap-south-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in eu-north-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in eu-west-3 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in eu-west-2 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in eu-west-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in ap-northeast-3 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in ap-northeast-2 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in ap-northeast-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in ca-central-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in sa-east-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in ap-southeast-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in ap-southeast-2 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in eu-central-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in us-east-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in us-east-2 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in us-west-1 { "EbsEncryptionByDefault": true } ### Get ebs encryption by default in us-west-2 { "EbsEncryptionByDefault": true }
有効化後にマネジメントコンソールで確認すると下記画像のようになります。AWS マネージドキーの設定の画像です。
デフォルトの暗号化キーの変更
EBS デフォルト暗号化を有効にした際のデフォルトの暗号化キーは AWS マネージドキーのalias/aws/ebs
が指定されています。デフォルトの暗号化キーは変更できるため、KMS のカスタマーマネージドキー(以下、CMK)を指定してみます。
デフォルトの暗号化キーの変更はmodify-ebs-default-kms-key-id
コマンドで設定できます。
本ブログでは、各リージョンにレプリケーションされた KMS の CMK がある状態を前提として設定してみます。マルチリージョンキーについては次のブログが参考になります。
全リージョンで作成済みの CMK のエイリアスalias/ebs-key
を指定してデフォルトの暗号化キーを設定するコマンド例です。なお、kms-key-id
オプションでは、キーのエイリアス以外に Key ID や Key ARN も指定できます。
aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ | while read region; do echo "### Modify ebs default kms key in ${region}" aws ec2 modify-ebs-default-kms-key-id \ --region ${region} \ --kms-key-id alias/ebs-key done
実行結果例です(折りたたんでいます)。
実行結果
$ aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ > | while read region; do > echo "### Modify ebs default kms key in ${region}" > aws ec2 modify-ebs-default-kms-key-id \ > --region ${region} \ > --kms-key-id alias/ebs-key > done ### Modify ebs default kms key in ap-south-1 { "KmsKeyId": "arn:aws:kms:ap-south-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in eu-north-1 { "KmsKeyId": "arn:aws:kms:eu-north-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in eu-west-3 { "KmsKeyId": "arn:aws:kms:eu-west-3:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in eu-west-2 { "KmsKeyId": "arn:aws:kms:eu-west-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in eu-west-1 { "KmsKeyId": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in ap-northeast-3 { "KmsKeyId": "arn:aws:kms:ap-northeast-3:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in ap-northeast-2 { "KmsKeyId": "arn:aws:kms:ap-northeast-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in ap-northeast-1 { "KmsKeyId": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in ca-central-1 { "KmsKeyId": "arn:aws:kms:ca-central-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in sa-east-1 { "KmsKeyId": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in ap-southeast-1 { "KmsKeyId": "arn:aws:kms:ap-southeast-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in ap-southeast-2 { "KmsKeyId": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in eu-central-1 { "KmsKeyId": "arn:aws:kms:eu-central-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in us-east-1 { "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in us-east-2 { "KmsKeyId": "arn:aws:kms:us-east-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in us-west-1 { "KmsKeyId": "arn:aws:kms:us-west-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Modify ebs default kms key in us-west-2 { "KmsKeyId": "arn:aws:kms:us-west-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" }
デフォルトの暗号化キーの設定を確認してみます。
デフォルトの暗号化キーの設定状況はget-ebs-default-kms-key-id
コマンドで確認できます。
全リージョンのデフォルトの暗号化キーを確認するコマンド例です。
aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ | while read region; do echo "### Get ebs default kms key in ${region}" aws ec2 get-ebs-default-kms-key-id --region ${region} done
実行結果例です(折りたたんでいます)。設定しているキーは Key ARN で出力されます。
実行結果
$ aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ > | while read region; do > echo "### Get ebs default kms key in ${region}" > aws ec2 get-ebs-default-kms-key-id --region ${region} > done ### Get ebs default kms key in ap-south-1 { "KmsKeyId": "arn:aws:kms:ap-south-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in eu-north-1 { "KmsKeyId": "arn:aws:kms:eu-north-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in eu-west-3 { "KmsKeyId": "arn:aws:kms:eu-west-3:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in eu-west-2 { "KmsKeyId": "arn:aws:kms:eu-west-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in eu-west-1 { "KmsKeyId": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in ap-northeast-3 { "KmsKeyId": "arn:aws:kms:ap-northeast-3:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in ap-northeast-2 { "KmsKeyId": "arn:aws:kms:ap-northeast-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in ap-northeast-1 { "KmsKeyId": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in ca-central-1 { "KmsKeyId": "arn:aws:kms:ca-central-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in sa-east-1 { "KmsKeyId": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in ap-southeast-1 { "KmsKeyId": "arn:aws:kms:ap-southeast-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in ap-southeast-2 { "KmsKeyId": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in eu-central-1 { "KmsKeyId": "arn:aws:kms:eu-central-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in us-east-1 { "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in us-east-2 { "KmsKeyId": "arn:aws:kms:us-east-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in us-west-1 { "KmsKeyId": "arn:aws:kms:us-west-1:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" } ### Get ebs default kms key in us-west-2 { "KmsKeyId": "arn:aws:kms:us-west-2:111122223333:key/mrk-1beee7f4ae30416883a54ed96example" }
以上で、Amazon EBS のデフォルト暗号化の設定は終わりです。
さいごに
Amazon EBS のデフォルト暗号化設定を試してみる機会がありましたので、ブログにしてみました。
このブログがどなたかのご参考になれば幸いです。